Search K
Appearance
Appearance
git clone https://github.com/vuejs/vue.git --depth 1--depth 1 选项。深度克隆是一种克隆存储库的技术,它只克隆最新的提交,而不是整个历史记录。它通过在克隆命令中使用 --depth 选项来实现。git clone --depth 1 是一个用于从远程仓库克隆代码的命令,其中的 --depth 1 参数表示只克隆最新的一次提交,而不会克隆整个历史记录。这种方式可以帮助减少克隆代码所需的时间和空间。--depth 1? 在日常开发中,我们通常只需要最新的代码,而不需要整个历史记录。如果不使用 --depth 1,那么 Git 会把整个历史记录都克隆下来,这样会增加克隆的时间和空间。
--depth 1 选项时,Git 只会克隆最新的一次提交的相关对象和引用,而不是整个历史记录。这就意味着只需要下载最新的代码快照,而不是整个仓库的所有历史。--depth 1 选项时,Git 只会克隆默认分支的最新提交。如果要克隆其他分支,你需要先转到一个正常的分支。git blame 这样的操作的用户可能是一个问题。git log、git bisect 等,可能受到限制。--depth 1 选项克隆存储库,后面使用 git pull 命令也下载不了历史 commit,只能下载最新的 commit。unshallow 命令可以将深度克隆的存储库转换为完整的存储库。它会将存储库转换为完整的存储库,包括所有历史记录和分支。# 从远程仓库获取缺失的对象和引用,将仓库转换为完整存储库
git fetch --unshallow
# 如果需要,可以使用以下命令拉取所有分支的数据
git fetch --all
# 将本地仓库更新到完整状态
git pull --allgit clone --depth 1 --branch <branch> <remote_repo>Git 是一个分布式版本控制系统,它的工作原理涉及到对象 (objects)、引用 (refs) 、索引 (index) 、分支 (branch)、标签 (tag) 、提交 (commit) 、树 (tree) 和 HEAD 等概念。
Git 保存信息的核心是通过对象存储,将所有的数据和元信息存储为对象。
对象 (objects): Git 使用一个称为对象存储的数据库来保存所有的数据。这个数据库包含了被称为 Git 对象的文件。每个 Git 对象都有一个唯一的 SHA-1 标识符,该标识符是根据对象内容计算得出的。对象存储包括以下类型的对象:
blob 对象存储文件数据,它们是不可修改的,因此每次修改文件时都会创建一个新的 blob 对象。tree 对象存储目录数据,它们包含一个或多个 blob 对象和其他 tree 对象的引用。commit 对象存储提交数据,它们包含提交的作者、提交的提交者、提交的消息、提交的时间戳、提交的父提交、提交的树对象等信息。commit 为入口,关联的所有的 tree 和 blob,就是这个 commit 的内容。commit 之间相互关联,而 head、branch、tag 等是指向具体 commit 的指针。可以在 .git/refs 下看到。这样就基于 commit 实现了 branch、tag 等概念。objects 可以在 .git/objects 下看到。blob、tree 等。commit、tree、blob 因为都没有下载下来所以无法切回去,相应的 tag、branch 等指针也不行。